package com.JZ.QM.common.dao;

import com.JZ.QM.common.entity.PositionDetailEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import javax.lang.model.type.ArrayType;
import java.math.BigDecimal;
import java.util.ArrayList;

/**
 * @author: cyc
 * @email cyc@gmail.com
 * @date: 2020/7/11 23:44
 */
@Mapper
public interface PositionDetailDao {
    /**
     * 获取相应的持仓信息
     * @param accountId
     * @param wealthAccountId
     * @return
     */
    ArrayList<PositionDetailEntity> getPositionDetailList(@Param("accountId") Long accountId,@Param("wealthAccountId") Long wealthAccountId);

    /**
     * 获取对应财富账号的持仓详细信息列表
     * @param wealthAccountId
     * @return
     */
    ArrayList<PositionDetailEntity> getPositionDetailInfo(@Param("wealthAccountId") Long wealthAccountId);

    /**
     * 获取某一日持仓详细信息列表
     * @param accountId 财富账户id
     * @param tradeDate 交易日期
     * @return
     */
    ArrayList<PositionDetailEntity> getPositionDetailForOneDay(@Param("accountId")Long accountId,@Param("tradeDate")String tradeDate);

    /**
     * 获取财富账号的累积收益金额
     * @param accountId 平台账号id
     * @return
     */
    BigDecimal getTotalEarningMoney(@Param("accountId") Long accountId);

    /**
     * 获取日持仓的累积收益
     * @param userId 用户id
     * @param tradeDate 交易日期
     * @return
     */
    BigDecimal getPositionTotalEarning(@Param(("userId")) Long userId,@Param("tradeDate")String tradeDate);

    /**
     * 获取对应组合的持仓明细详细信息
     * @param comBaseId 组合id
     * @return
     */
    ArrayList<PositionDetailEntity> getComPositionDetailItems(@Param("comBaseId") Long comBaseId);
//    ArrayList<PositionDetailEntity> getNewComTotalPositionItems(@Param("comId") Long comId);
}
